import {PageParam} from '@/services/common'
import {covertTableData} from '@/utils/tableUtil'
import {request} from '@umijs/max'

export interface SocialUserVO {
    /**
     * 用户id
     */
    id: string
    /**
     * 社交平台的类型
     */
    type: string
    /**
     * 社交 openid
     */
    openid: string
    /**
     * 用户昵称
     */
    nickname: string
    /**
     * 手机号
     */
    phone?: string
    /**
     * 用户头像
     */
    avatar?: string
}

export interface SocialUserQueryDTO extends PageParam {
    /**
     * 用户id
     */
    id?: string
    /**
     * 社交 openid
     */
    openid?: string
    /**
     * 用户昵称
     */
    nickname?: string
    /**
     * 手机号
     */
    phone?: string
    tagId?: string
}

export interface SocialUserUpdateDTO {
    /**
     * 用户id
     */
    id?: string
    /**
     * 社交平台的类型
     */
    type?: string
    /**
     * 用户昵称
     */
    nickname?: string
    /**
     * 手机号
     */
    phone?: string
    /**
     * 用户头像
     */
    avatar?: string
}

export const getSocialUserById = async (id: string) => {
    return request<SocialUserVO>(`/api/socialUser?id=${id}`, {method: 'GET'})
}

export const getSocialUserList = async (params: SocialUserQueryDTO) => {
    return request<Array<SocialUserVO>>(`/api/socialUser/list`, {method: 'GET', params})
}

export const getSocialUserPage = async (params: SocialUserQueryDTO) => {
    let response = await request<Array<SocialUserVO>>(`/api/socialUser/page`, {method: 'GET', params})
    return covertTableData(response)
}

export const updateSocialUser = async (socialUserUpdateDTO: SocialUserUpdateDTO) => {
    return request<SocialUserVO>(`/api/socialUser/update`, {method: 'POST', data: socialUserUpdateDTO})
}

export const saveSocialUser = async (socialUserUpdateDTO: SocialUserUpdateDTO) => {
    return request<SocialUserVO>(`/api/socialUser/save`, {method: 'POST', data: socialUserUpdateDTO})
}

export const removeSocialUser = async (id: string) => {
    return request<boolean>(`/api/socialUser/remove?id=${id}`, {method: 'POST'})
}
